The present invention relates generally to digital imaging, and particularly to a programmable display controller for digital imaging.
Advances in technology have made possible the electronic still camera for photography. In photographic cameras, the image-forming light is sensed and recorded directly on film. Unlike photographic cameras, the electronic still camera uses an electronic image sensor to sense the image-forming light and a separate recording medium to record and store the picture. Because the electronic still camera uses digital technology, the electronic still camera is a type of digital camera.
Typically the electronic image sensor in a digital camera is a solid-state device such as a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) device. The image sensor connects to electronic interface circuitry which connects to a storage device and, optionally, to a display.
A typical image sensor has many cells or pixels arranged along vertical and horizontal dimensions in a matrix. In response to light, the cells generate a charge or voltage which represents image information. The image sensor senses an image and stores image information, i.e., a charge or voltage, corresponding to the sensed light in the cells. Image sensors are made in many sizes such as, e.g., 400xc3x97300, 640xc3x97480, 1024xc3x97768, and 4096xc3x974096 pixels. The image information stored in the cells is output serially from the image sensor using an arrangement of shift registers. The shift registers are arranged along vertical and horizontal dimensions and are coupled to the cells. The cells and shift registers require timing, or clock, signals, having specific timing requirements, to output the image information. Each type of image sensor has its own unique timing requirements. Typically, a single image sensor requires many clock signals to control the flow of image information in both the horizontal and vertical dimensions. The clock signals must be synchronized. For example, to output image information from a 640xc3x97480 CCD requires 480 vertical shifts and 640 horizontal shifts for each vertical shift. Within a single dimension, the clock signals to control the flow of image information have different phases that must be synchronized. Furthermore, shifting the information out of the image sensor requires timing signals to synchronize the image sensor""s operation with an analog signal processor (ASP) and an analog-to-digital (A/D) converter.
The image information sensed by each cell is also called a pixel. After being converted to digital form, the image information (image data) is stored in a memory, typically an image memory. Image sensors having a larger numbers of cells produce higher quality images; however, more pixel information must be processed and stored.
Typically, a digital signal processor processes the digital image data to improve the quality of the image. Various algorithms well-known in the art are used to improve image quality. Because there is such a large amount of image data, the image data is compressed before storage in a storage medium.
Color imaging increases the complexity of processing the digital image data. In one method, the image sensor has a geometric arrangement of cells to respond to three colors, e.g., red, green and blue. Since each cell senses a particular color, various algorithms are used to interpolate the missing color information. Alternatively, two or more image sensors having different color sensitivity can be used and the image information is combined.
A color pixel value can be represented in a red-green-blue (RGB) format. RGB format has three intensity components: a red component, green component and blue component. Video systems typically convey image data in the form of a component that represents brightness (luma or Y), and two other components that represent color, i.e., color difference components Cb and Cr which are also represented as U and V components. Cb is equal to xe2x80x9cbluexe2x80x9d minus xe2x80x9cluma,xe2x80x9d i.e., Bxe2x88x92Y. Cr is equal to xe2x80x9credxe2x80x9d minus xe2x80x9cluma,xe2x80x9d i.e., Rxe2x88x92Y. RGB formatted data can be converted to YCbCr formatted data using the formula:
Y=0.299R+0.587G+0.114B
Cb=xe2x88x920.169*Rxe2x88x920.331*Gxe2x88x920.500*B+128
Cr=0.500*Rxe2x88x920.419*Gxe2x88x920.081*B+128
Composite NTSC and PAL video use a YIQ format for encoding color pixel values. YIQ represents luma (Y) accompanied by color difference components I (In-phase) and Q (Quadrature). I and Q are derived from U and V by a +33xc2x0 rotation and an exchange of axes.
Different types of video displays have different video format requirements. Some typical video format requirements are NTSC, S Video and PAL. The NTSC, S-Video and PAL formats all output an analog signal. To output digital image information to an NTSC, S-video or PAL display, the digital image information stored in an image memory must be converted to an analog form.
NTSC is an acronym for the National Television Systems Committee and also refers to a method for converting digitally encoded color video data based on quadrature modulation of the I and Q color difference components of the YIQ data onto a color subcarrier frequency, then adding the resulting chroma signal to the luma signal. NTSC video is used with a subcarrier frequency of 455/2 times the horizontal line rate (about 3.579545 MHz). The color subcarrier is about 3.58 MHz in conventional NTSC and about 4.43 MHz in conventional PAL.
S-video is an interface that conveys luma and quadrature modulated chroma signals separately. There are two types of S-video: S-video-525 and S-video-625. S-video-525 uses a 3.58 MHz subcarrier, as in NTSC. S-video-625 uses a 4.42 MHz subcarrier, as in PAL. S-video uses quadrature modulation. S-video does not use frequency interleaving. Phase Alternate Line (PAL) is a composite color standard similar to NTSC except that the V-axis subcarrier reference signal inverts in phase at the horizontal line rate, and burst meander is applied. The modulation function to generate the composite PAL video signal from the YUV data uses values called sin(p) and cos(p). P is equal to the amount of phase shift and the phase shift varies. Typically, in a YUV to PAL converter, the values for sin(p) and cos(p) are stored in a table and cannot be changed. In PAL video, the phase p is different for each pixel in a scan line. A lookup table for eight-bit sine and cosine values for a single value of p requires that 512 values be stored. Therefore, the look-up table is very large and requires a large area if implemented as an integrated circuit. A method and apparatus are needed to allow the sin(p) and cos(p) values to be dynamically changed and reduce the amount of phase information to be stored on an integrated circuit.
Some digital cameras have a viewfinder mode in addition to an image acquisition mode. In viewfinder mode, the image to be acquired is displayed on a display. The image data stored in memory comprises a large amount of pixel data. For example, a 640xc3x97480 CCD has about 307,200 pixels. To properly reconstruct the image, data corresponding to each pixel must be stored. Assuming each pixel is represented by one byte for each of the RGB color values, then about 921,000 bytes are needed to store the image.
However, the data may be displayed on a variety of displays and each display may use a different video format. The different video formats involve tradeoffs between video resolution, frame rate, still image quality, and compression quality. Therefore, in order for a display controller to be usable with a variety of display devices and a variety of display modes, a method and apparatus are needed to provide a selectable display format. Moreover, because some formats require more storage than others, a method and apparatus are needed to reduce the amount of storage space required in image memory.
A programmable display controller for use in a digital imaging system has a video control register, a data access controller and a programmable modulator. The programmable display control is designed to be used with a digital imaging systems, such as digital cameras, having a variety of display different devices that require respective different control signals, different image signal modulations, and so on. The video control register stores video mode bits indicating the type of video signal to output. The data access controller has a buffer for requesting image data and storing the requested image data in the buffer. The programmable modulator, in response to the video mode bits, generates a video signal from the image data stored in the buffer.
In some embodiments, a decoder detects and decodes a link code in received image data. An address generator is responsive to the decoder and outputs a link address corresponding to the decoded link code for fetching image data that is stored at the link address.
The programmable display controller may include a special code decoder for detecting and decoding one or more special codes in received data. The received data has an associated video mode and also has at least one associated coefficient. A storage register is responsive to the special code decoder and stores the associated coefficient. A modulation function generator modulates the received data using the at least one coefficient stored in the storage register to generate a video signal.